package com.dragon.modules.yuegou.entity.member;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.member.MemberCardLevelGradeRule;
import com.dragon.modules.yuegou.enums.member.MemberCardLevelLevelSorce;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * 会员卡等级表实体类<br>
 * 对应的表为：mem_member_card_level<br>
 * 
 * @author pbuilder generated
 * @date 2021-12-17 16:51:24
 * @company sgy
 * @version 2.0
 */
@TableName("mem_member_card_level")
@ApiModel(description = "会员卡等级表")
public class MemberCardLevelEntity {

    /** 主键 */
	@ApiModelProperty("主键")
	protected String id;

    /** 商圈ID */
	@ApiModelProperty("商圈ID")
	protected String busdId;

    /** 会员ID */
	@ApiModelProperty("会员ID")
	protected String memberId;

    /** 会员卡编号 */
	@ApiModelProperty("会员卡编号")
	protected String cardNo;

    /** [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED */
	@ApiModelProperty("[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED")
	protected MemberCardLevelGradeRule gradeRule;

    /** 当前会员等级ID */
	@ApiModelProperty("当前会员等级ID")
	protected String gradeId;

    /** 会员等级名称 */
	@ApiModelProperty("会员等级名称")
	protected String gradeName;

    /** 当前会员成长值 */
	@ApiModelProperty("当前会员成长值")
	protected Long growCount;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 修改时间 */
	@ApiModelProperty("修改时间")
	protected LocalDateTime modifiedTime;

    /** 等级开始时间 */
	@ApiModelProperty("等级开始时间")
	protected LocalDateTime beginTime;

    /** 等级结束时间 */
	@ApiModelProperty("等级结束时间")
	protected LocalDateTime endTime;

    /** [枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER */
	@ApiModelProperty("[枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER")
	protected MemberCardLevelLevelSorce levelSorce;

	/**
	 * 构造一个空会员卡等级表实体对象
	 */
	public MemberCardLevelEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个会员卡等级表实体对象
	 * 
	 * @param other 其它对象
	 */
	public MemberCardLevelEntity(MemberCardLevelEntity other){
		super();
     	this.id = other.id;
     	this.busdId = other.busdId;
     	this.memberId = other.memberId;
     	this.cardNo = other.cardNo;
     	this.gradeRule = other.gradeRule;
     	this.gradeId = other.gradeId;
     	this.gradeName = other.gradeName;
     	this.growCount = other.growCount;
     	this.createdTime = other.createdTime;
     	this.modifiedTime = other.modifiedTime;
     	this.beginTime = other.beginTime;
     	this.endTime = other.endTime;
     	this.levelSorce = other.levelSorce;
	}


	/**
	 * 获取主键
	 * 
	 * @return id 主键
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置主键
	 * 
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取商圈ID
	 * 
	 * @return busdId 商圈ID
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取会员ID
	 * 
	 * @return memberId 会员ID
	 */
	public String getMemberId() {
		return memberId;
	}
  	
	/**
	 * 设置会员ID
	 * 
	 * @param memberId 会员ID
	 */
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}

	/**
	 * 获取会员卡编号
	 * 
	 * @return cardNo 会员卡编号
	 */
	public String getCardNo() {
		return cardNo;
	}
  	
	/**
	 * 设置会员卡编号
	 * 
	 * @param cardNo 会员卡编号
	 */
	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	/**
	 * 获取[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 * 
	 * @return gradeRule [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 */
	public MemberCardLevelGradeRule getGradeRule() {
		return gradeRule;
	}
  	
	/**
	 * 设置[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 * 
	 * @param gradeRule [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 */
	public void setGradeRule(MemberCardLevelGradeRule gradeRule) {
		this.gradeRule = gradeRule;
	}

	/**
	 * 获取当前会员等级ID
	 * 
	 * @return gradeId 当前会员等级ID
	 */
	public String getGradeId() {
		return gradeId;
	}
  	
	/**
	 * 设置当前会员等级ID
	 * 
	 * @param gradeId 当前会员等级ID
	 */
	public void setGradeId(String gradeId) {
		this.gradeId = gradeId;
	}

	/**
	 * 获取会员等级名称
	 * 
	 * @return gradeName 会员等级名称
	 */
	public String getGradeName() {
		return gradeName;
	}
  	
	/**
	 * 设置会员等级名称
	 * 
	 * @param gradeName 会员等级名称
	 */
	public void setGradeName(String gradeName) {
		this.gradeName = gradeName;
	}

	/**
	 * 获取当前会员成长值
	 * 
	 * @return growCount 当前会员成长值
	 */
	public Long getGrowCount() {
		return growCount;
	}
  	
	/**
	 * 设置当前会员成长值
	 * 
	 * @param growCount 当前会员成长值
	 */
	public void setGrowCount(Long growCount) {
		this.growCount = growCount;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取修改时间
	 * 
	 * @return modifiedTime 修改时间
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置修改时间
	 * 
	 * @param modifiedTime 修改时间
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取等级开始时间
	 * 
	 * @return beginTime 等级开始时间
	 */
	public LocalDateTime getBeginTime() {
		return beginTime;
	}
  	
	/**
	 * 设置等级开始时间
	 * 
	 * @param beginTime 等级开始时间
	 */
	public void setBeginTime(LocalDateTime beginTime) {
		this.beginTime = beginTime;
	}

	/**
	 * 获取等级结束时间
	 * 
	 * @return endTime 等级结束时间
	 */
	public LocalDateTime getEndTime() {
		return endTime;
	}
  	
	/**
	 * 设置等级结束时间
	 * 
	 * @param endTime 等级结束时间
	 */
	public void setEndTime(LocalDateTime endTime) {
		this.endTime = endTime;
	}

	/**
	 * 获取[枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER
	 * 
	 * @return levelSorce [枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER
	 */
	public MemberCardLevelLevelSorce getLevelSorce() {
		return levelSorce;
	}
  	
	/**
	 * 设置[枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER
	 * 
	 * @param levelSorce [枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER
	 */
	public void setLevelSorce(MemberCardLevelLevelSorce levelSorce) {
		this.levelSorce = levelSorce;
	}

    public String toString() {
		return new StringBuilder().append("MemberCardLevelEntity{").
			append("id=").append(id).
			append(",busdId=").append(busdId).
			append(",memberId=").append(memberId).
			append(",cardNo=").append(cardNo).
			append(",gradeRule=").append(gradeRule).
			append(",gradeId=").append(gradeId).
			append(",gradeName=").append(gradeName).
			append(",growCount=").append(growCount).
			append(",createdTime=").append(createdTime).
			append(",modifiedTime=").append(modifiedTime).
			append(",beginTime=").append(beginTime).
			append(",endTime=").append(endTime).
			append(",levelSorce=").append(levelSorce).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public MemberCardLevelEntity copy() {
		return new MemberCardLevelEntity(this);
	}

    /** 主键 */
	public static final String COL_ID = "id";

    /** 商圈ID */
	public static final String COL_BUSD_ID = "busd_id";

    /** 会员ID */
	public static final String COL_MEMBER_ID = "member_id";

    /** 会员卡编号 */
	public static final String COL_CARD_NO = "card_no";

    /** [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED */
	public static final String COL_GRADE_RULE = "grade_rule";

    /** 当前会员等级ID */
	public static final String COL_GRADE_ID = "grade_id";

    /** 会员等级名称 */
	public static final String COL_GRADE_NAME = "grade_name";

    /** 当前会员成长值 */
	public static final String COL_GROW_COUNT = "grow_count";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 修改时间 */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /** 等级开始时间 */
	public static final String COL_BEGIN_TIME = "begin_time";

    /** 等级结束时间 */
	public static final String COL_END_TIME = "end_time";

    /** [枚举]等级来源：0-创建会员-VIP_CREATE、1-会员升级-VIP_UPGRADE、2-会员降级-VIP_DEMOTION、3-旧会员变更-OLD_MEMBER */
	public static final String COL_LEVEL_SORCE = "level_sorce";
}
